home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Risc World 3
/
Risc World 3.iso
/
SOFTWARE
/
ISSUE6
/
PD
/
PDF
/
GuiLib
/
Task
/
h
/
GuiWindow
< prev
Wrap
Text File
|
2003-02-14
|
4KB
|
100 lines
//--------------------------------------------------------------------------
//
// Copyright (c) 2002, Colin Granville
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or
// without modification, are permitted provided that the following
// conditions are met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following
// disclaimer in the documentation and/or other materials
// provided with the distribution.
//
// * The name Colin Granville may not be used to endorse or promote
// products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
// OF THE POSSIBILITY OF SUCH DAMAGE.
//
//--------------------------------------------------------------------------
#ifndef GuiWindow_h
#define GuiWindow_h
#include "GuiObject.h"
#include "GuiWimp.h"
struct GuiKeyboardShortcut
{
unsigned int flags;
int wimpKeyCode;
int keyEvent;
char *keyShow;
};
class GuiWindow : public GuiWindowObject
{
public:
enum {SwiChunkBase = 0x82880};
GuiWindow(const char* win) : GuiWindowObject(win) {}
GuiWindow(GuiObjectId id) : GuiWindowObject(id) {}
virtual ~GuiWindow();
GuiObjectId underlyingWindowId() const;
int wimpHandle() const {return getValue(0);}
void setTitle(const char* title) {setString(11,title);}
string getTitle() const {return getString(12);}
void setExtent(const GuiBBox& extent) {setValue(15,&extent);}
bool getExtent(GuiBBox& extent) const {return getValue(16,&extent);}
void forceRedraw(const GuiBBox& redraw_box) {setValue(17,&redraw_box);}
bool getState(GuiGetWindowStateBlock& ws) const;
bool update(GuiRedrawWindowBlock&,int& more) const;
bool getOutline(GuiBBox&) const;
static _kernel_oserror* redraw(GuiRedrawWindowBlock& rwb,int &more);
static _kernel_oserror* getRectangle(GuiRedrawWindowBlock& rwb,int &more);
class HasBeenHidden : public GuiToolboxEventHeader
{
public:
enum {Event = SwiChunkBase+0x10};
};
private:
GuiWindow(const GuiWindow&); //prevent copying - not defined
GuiWindow& operator=(const GuiWindow&); //prevent copying - not defined
};
//*****************************************************************************
inline _kernel_oserror* GuiWindow::redraw(GuiRedrawWindowBlock& rwb,int &more)
{
return _swix(Wimp_RedrawWindow,_IN(1) | _OUT(0),&rwb,&more);
}
inline _kernel_oserror* GuiWindow::getRectangle(GuiRedrawWindowBlock& rwb,int &more)
{
return _swix(Wimp_GetRectangle,_IN(1) | _OUT(0),&rwb,&more);
}
#endif